home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d8 / pdriver5.arc / DRIVERS.DOC < prev    next >
Text File  |  1989-12-17  |  14KB  |  385 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.                  User documentation for the packet driver collection
  8.                                    Russell Nelson
  9.                                  Clarkson University
  10.                                   Potsdam, NY 13676
  11.                               nelson@clutx.clarkson.edu
  12.  
  13.  
  14.           Why?
  15.  
  16.                Every PC Ethernet board is different.  The 3c501 was, for
  17.           some time, the most popular board, and would have become the
  18.           defacto standard but for its poor performance.  By the time 3Com
  19.           created a board with acceptable performance, so had many others,
  20.           and 3Com lost its lead.  FTP Software, in order to support each
  21.           of these boards without losing its collective mind, created the
  22.           Packet Driver Spec (PDS).
  23.  
  24.  
  25.           What?
  26.  
  27.                Some boards use DMA, some use programmed I/O, and some use
  28.           shared memory.  The PDS masks the differences between these
  29.           boards by defining a software interface to the boards.  This
  30.           software interface is a software interrupt in the range between
  31.           0x60 (hex) and 0x80.
  32.  
  33.  
  34.           How?
  35.  
  36.                The packet driver must be installed prior to use.  Since
  37.           each packet driver takes only approximately 1800 bytes, this is
  38.           best done in your autoexec.bat.  Since the Ethernet boards typi-
  39.           cally have jumpers on board, the packet driver must be informed
  40.           of the values of these jumpers (auto-configure is possible, but
  41.           can disturb other boards).  The first parameter is the software
  42.           interrupt used to communicate with the packet driver.  And again,
  43.           because each board is different, the rest of the parameters will
  44.           be different.
  45.  
  46.           Before installing the packet driver, you must choose a software
  47.           interrupt number in the range between 0x60 and 0x80.  Some of
  48.           these interrupts are used for other purposes, so your first
  49.           choice may not work.  See Appendix A for the section of Ralf
  50.           Brown's interrupt list between 0x60 and 0x80.
  51.  
  52.           Running a packet driver with no specifications will give a usage
  53.           message.  The parameters for each packet driver are documented
  54.           below.
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.           3Com 3C501
  62.                usage: 3C501 packet_int_no [int_no [io_addr]]
  63.  
  64.                The 3c501 requires two additional parameters -- the
  65.           hardware interrupt number and the I/O address.  The defaults are
  66.           3 and 0x300.
  67.  
  68.  
  69.           3Com 3C503
  70.  
  71.                usage: 3C503 packet_int_no [int_level(2-5) [io_addr
  72.           [cable_type]]]
  73.  
  74.                The 3c503 requires three additional parameters -- the
  75.           hardware interrupt number, the I/O address, and the cable type.
  76.           The 3c503 can be attached to thick or thin Ethernet cables, and
  77.           the selection is made in software.  The cable type parameter
  78.           should be zero for thin, and one for thick.  The defaults are 2,
  79.           0x300, and 0 (thin).  The 3c503 uses shared memory whose address
  80.           is set by jumpers, but the software can ask the board what the
  81.           address is.
  82.  
  83.  
  84.           3Com 3c505
  85.  
  86.                usage: 3c505 packet_int_no [int_no [io_addr [base_addr]]]
  87.  
  88.                The 3c505 requires three additional parameters -- the
  89.           hardware interrupt number, the I/O address, and the memory base
  90.           address.  The defaults are 2 and 0x300 and 0xd000.
  91.  
  92.  
  93.           3Com 3c523
  94.  
  95.                usage: 3c523 packet_int_no [int_no [io_addr [base_addr]]]
  96.  
  97.                The 3c523 requires three additional parameters -- the
  98.           hardware interrupt number, the I/O address, and the memory base
  99.           address.  The defaults are 3 and 0x300 and 0xc000.
  100.  
  101.  
  102.           IBM Token Ring
  103.  
  104.                usage: ibmtoken packet_int_no [adapter_no]
  105.  
  106.                The IBM Token Ring packet driver requires one additional
  107.           parameters -- the adapter number.  The default is zero.  See
  108.           IBMTOKEN.DOC for more information.
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.           BICC Data Networks' ISOLAN 4110 ethernet
  116.  
  117.                usage: isolan packet_int_no [int_no [base_addr]]
  118.  
  119.                The BICC Isolan requires three additional parameters -- the
  120.           hardware interrupt number and the memory base address.  The
  121.           defaults are 2 and 0xb800h.
  122.  
  123.  
  124.           3Com ne1000
  125.  
  126.                usage: ne1000 packet_int_no [int_no [io_addr]]
  127.  
  128.                The ne1000 requires two additional parameters -- the
  129.           hardware interrupt number and the I/O address.  The defaults are
  130.           3 and 0x300.
  131.  
  132.  
  133.           Racal-Interlan (Formerly Interlan) NI5010
  134.  
  135.                usage: NI5010 packet_int_no [int_no [io_addr]]
  136.  
  137.                The NI5010 requires two additional parameters -- the
  138.           hardware interrupt number and the I/O address.  The defaults are
  139.           3 and 0x300.
  140.  
  141.  
  142.           Racal-Interlan (Formerly Micom-Interlan) NI5210
  143.  
  144.                usage: ni5210 packet_int_no [int_no [io_addr [base_addr]]]
  145.  
  146.                The NI5210 requires three additional parameters -- the
  147.           hardware interrupt number, the I/O address, and the memory base
  148.           address.  The defaults are 2 and 0x360 and 0xd000.  Note that
  149.           Interlan sets the default memory base to 0xa000, which is brain-
  150.           damaged, because that area of memory is specifically reserved for
  151.           video adapters, and in fact the EGA and VGA use it.
  152.  
  153.  
  154.           Racal-Interlan (Formerly Micom-Interlan) NI9210
  155.  
  156.                usage: ni9210 packet_int_no [int_no [io_addr [base_addr]]]
  157.  
  158.                The NI9210 requires three additional parameters -- the
  159.           hardware interrupt number, the I/O address, and the memory base
  160.           address.  The defaults are 2 and 0x360 and 0xd000.
  161.  
  162.  
  163.           SLIP8250
  164.  
  165.                usage: SLIP8250 packet_int_no [driver_class] [int_no]
  166.                   [io_addr] [baud_rate] [send_buf_size] [recv_buf_size]
  167.                   The driver_class should be SLIP, KISS, AX.25, or a
  168.                   number.
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.                The SLIP8250 is not strictly an Ethernet adapter, however
  176.           some software packages (such as KA9Q's NET) support Serial Line
  177.           IP (SLIP).  SLIP must be specially supported because it doesn't
  178.           use ARP and has no hardware addresses prepended to its packets.
  179.           The PDS is not clear on this, but the packet driver does the SLIP
  180.           encoding.
  181.           The parameters are as follows.  The driver_class is the class
  182.           that is returned to a client of the packet driver spec in the
  183.           Drive_Info call.  The int_no is the hardware interrupt number,
  184.           defaults to 3 (COM1).  The io_addr is the hardware I/O address,
  185.           defaults to 0x3f8 (COM1).  The baud_rate defaults to 4800 baud.
  186.           The send_buf_size and recv_buf_size default to 3000 each.
  187.  
  188.  
  189.           Western Digital WD8003E,WD8003ET/A
  190.  
  191.                usage: WD8003E packet_int_no [int_level [io_addr
  192.           [mem_base]]]
  193.  
  194.                The WD8003E driver is also for the WD8003ET/A, a
  195.           MicroChannel Ethernet adapter.  The WD8003E requires three addi-
  196.           tional parameters -- the hardware interrupt number, the I/O
  197.           address, and the memory base address.  The defaults are 2 and
  198.           0x280 and 0xc400.
  199.  
  200.  
  201.           What else?
  202.  
  203.                There are also several utility programs for packet drivers:
  204.  
  205.  
  206.           PKTADDR
  207.  
  208.                usage: pktaddr packet_int_no [ethernet_addr]
  209.  
  210.                If the second argument is given, the Ethernet address of
  211.           the given packet driver is set.  The Ethernet address is printed
  212.           out.
  213.  
  214.  
  215.           PKTALL
  216.  
  217.                usage: pktall packet_int_no
  218.  
  219.                All packets are received and discarded from the given
  220.           packet driver.  This program is of most use with PKTMODE and
  221.           TRACE.
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.           PKTCHK
  229.  
  230.                usage: pktchk packet_int_no [packet_int_no]
  231.  
  232.                Test for existance of a packet driver.  Returns with
  233.           errorlevel 0 if the specified interrupt has a packet driver.  If
  234.           the second argument is given, all interrupts in the range are
  235.           checked for a packet driver.  If no packet driver is found at
  236.           all, errorlevel 1 is returned.
  237.  
  238.  
  239.           PKTMODE
  240.  
  241.                usage: pktmode packet_int_no [receive_mode]
  242.  
  243.                If the second argument is given, the receive mode of the
  244.           given packet driver is set.  A decimal number from the list of
  245.           modes should be used.  All the possible modes are printed out.
  246.           Unimplemented modes are marked with "xx", and the current mode is
  247.           marked with "->".
  248.  
  249.  
  250.           TERMIN
  251.  
  252.                usage: termin packet_int_no
  253.  
  254.                The specified packet driver is terminated, and its memory
  255.           recovered.
  256.  
  257.           STAT
  258.  
  259.                usage: stat
  260.  
  261.                The statistics for all packet drivers are printed.  The
  262.           meanings of the columns are given below.
  263.  
  264.  
  265.           pktin   is the number of packets ever received by this driver.
  266.           pktout  is the number of packets ever transmitted by this
  267.                   driver.
  268.           bytin   is the number of bytes ever received by this driver.
  269.           bytout  is the number of bytes ever transmitted by this driver.
  270.           pkdrop  Packets dropped because there was no handler for that
  271.                   Ethernet packet type.
  272.           errin   Dependent upon the packet driver.
  273.           errout  Dependent upon the packet driver.
  274.  
  275.  
  276.  
  277.           TRACE
  278.  
  279.                usage: trace packet_int_no [buffer_size]
  280.  
  281.                Trace is very useful for debugging packet driver troubles.
  282.           Trace lets you trace all transactions between a user program and
  283.  
  284.  
  285.  
  286.  
  287.  
  288.  
  289.           the packet driver.  The transactions are stored in a memory
  290.           buffer whose size is set with buffer_size.  The default size is
  291.           10,000 bytes.
  292.  
  293.                When you run trace, it sets itself up and then spawns
  294.           COMMAND.COM so that you can run a network program that uses the
  295.           packet driver.  After you quit your network session, you issue an
  296.           "EXIT" command.  This returns you to trace, which writes the
  297.           transaction log to "TRACE.OUT".  The following program, DUMP,
  298.           interprets TRACE.OUT.
  299.  
  300.  
  301.           DUMP
  302.  
  303.                usage: dump
  304.  
  305.                Interprets the contents of TRACE.OUT as written by TRACE.
  306.  
  307.  
  308.           Who?
  309.  
  310.           See the file support.txt for a listing of all the people who
  311.           contributed packet drivers.
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.                                      Appendix A
  319.                    Interrupt usage in the range 0x60 through 0x80
  320.  
  321.  
  322.  
  323.           60 -- -- reserved for user interrupt
  324.           60 -- -- FTP Driver - PC/TCP Packet Driver Specification
  325.           60 01 FF FTP Driver - DRIVER INFO
  326.           60 02 -- FTP Driver - ACCESS TYPE
  327.           60 03 -- FTP Driver - RELEASE TYPE
  328.           60 04 -- FTP Driver - SEND PACKET
  329.           60 05 -- FTP Driver - TERMINATE DRIVER FOR HANDLE
  330.           60 06 -- FTP Driver - GET ADDRESS
  331.           60 07 -- FTP Driver - RESET INTERFACE
  332.           60 11 -- 10-NET - LOCK AND WAIT
  333.           60 12 -- 10-NET - LOCK
  334.           60 13 -- 10-NET - UNLOCK
  335.           60 20 -- FTP Driver - SET RECEIVE MODE
  336.           60 21 -- FTP Driver - GET RECEIVE MODE
  337.           60 24 -- FTP Driver - GET STATISTICS
  338.           61 -- -- reserved for user interrupt
  339.           62 -- -- reserved for user interrupt
  340.           63 -- -- reserved for user interrupt
  341.           64 -- -- reserved for user interrupt
  342.           65 -- -- reserved for user interrupt
  343.           66 -- -- reserved for user interrupt
  344.           67 -- -- LIM EMS
  345.                    ...
  346.           67 DE 00 Virtual Control Program Interface - INSTALLATION CHECK
  347.                    ...
  348.           68 01 -- APPC/PC
  349.                    ...
  350.           69 -- -- unused
  351.           6A -- -- unused
  352.           6B -- -- unused
  353.           6C -- -- system resume vector (CONVERTIBLE)
  354.           6C -- -- DOS 3.2 Realtime Clock update
  355.           6D -- -- VGA - internal
  356.           6E -- -- unused
  357.           6F -- -- Novell NetWare - PCOX API (3270 PC terminal interface)
  358.           6F 00 -- 10-NET - LOGIN
  359.                    ...
  360.           70 -- -- IRQ8 - AT/XT286/PS50+ - REAL-TIME CLOCK
  361.           71 -- -- IRQ9 - AT/XT286/PS50+ - LAN ADAPTER 1
  362.           72 -- -- IRQ10 - AT/XT286/PS50+ - RESERVED
  363.           73 -- -- IRQ11 - AT/XT286/PS50+ - RESERVED
  364.           74 -- -- IRQ12 - PS50+ - MOUSE INTERRUPT
  365.           75 -- -- IRQ13 - AT/XT286/PS50+ - 80287 ERROR
  366.           76 -- -- IRQ14 - AT/XT286/PS50+ - FIXED DISK
  367.           77 -- -- IRQ15 - AT/XT286/PS50+ - RESERVED
  368.           78 -- -- not used
  369.           79 -- -- not used
  370.           7A -- -- Novell NetWare - LOW-LEVEL API
  371.           7A -- -- AutoCAD Device Interface
  372.           7B -- -- not used
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.           7C -- -- not used
  380.           7D -- -- not used
  381.           7E -- -- not used
  382.           7F -- -- HDILOAD.EXE - 8514/A VIDEO CONTROLLER INTERFACE
  383.           7F -- -- HLLAPI (High-Level Language API)
  384.           80 -- -- reserved for BASIC
  385.